/* ========================= eCAL LICENSE =================================
 *
 * Copyright (C) 2016 - 2019 Continental Corporation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * ========================= eCAL LICENSE =================================
*/

#include "row_height_delegate.h"


RowHeightDelegate::RowHeightDelegate(QObject* parent)
  : QStyledItemDelegate(parent)
  , row_height_(-1)
{}

RowHeightDelegate::~RowHeightDelegate()
{}

QSize RowHeightDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const
{
  QSize size = QStyledItemDelegate::sizeHint(option, index);
  int font_height = option.fontMetrics.height();

  if (row_height_ > 0)
    size.setHeight(std::max(row_height_, font_height));

  return size;
}

void RowHeightDelegate::setRowHeight(int row_height)
{
  row_height_ = row_height;
  emit sizeHintChanged(QModelIndex());
}